/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2001 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.db.explorer.actions; import java.util.ResourceBundle; import org.openide.*; import org.openide.util.NbBundle; import java.util.*; import java.io.*; import java.sql.Connection; import java.text.MessageFormat; import org.openide.nodes.*; import org.netbeans.modules.db.explorer.nodes.*; import org.netbeans.modules.db.explorer.infos.*; import org.netbeans.modules.db.explorer.dlg.*; import javax.swing.JFileChooser; import org.netbeans.lib.ddl.impl.*; public class RecreateTableAction extends DatabaseAction { static final long serialVersionUID =6992569917995229492L; public void performAction (Node[] activatedNodes) { Node node; if (activatedNodes != null && activatedNodes.length>0) node = activatedNodes[0]; else return; try { final ResourceBundle bundle = NbBundle.getBundle("org.netbeans.modules.db.resources.Bundle"); DatabaseNodeInfo info = (DatabaseNodeInfo)node.getCookie(DatabaseNodeInfo.class); TableListNodeInfo nfo = (TableListNodeInfo)info.getParent(nodename); Specification spec = (Specification)nfo.getSpecification(); String tablename = (String)nfo.get(DatabaseNode.TABLE); AbstractCommand cmd; // Get filename JFileChooser chooser = new JFileChooser(); chooser.setDialogType(JFileChooser.OPEN_DIALOG); chooser.setDialogTitle(bundle.getString("RecreateTableFileOpenDialogTitle")); chooser.setFileFilter(new javax.swing.filechooser.FileFilter() { public boolean accept(File f) { return (f.isDirectory() || f.getName().endsWith(".grab")); } public String getDescription() { return bundle.getString("GrabTableFileTypeDescription"); } }); java.awt.Component par = TopManager.getDefault().getWindowManager().getMainWindow(); if (chooser.showOpenDialog(par) == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); if (file != null && file.isFile()) { FileInputStream fstream = new FileInputStream(file); ObjectInputStream istream = new ObjectInputStream(fstream); cmd = (AbstractCommand)istream.readObject(); istream.close(); cmd.setSpecification(spec); } else return; } else return; String newtab = cmd.getObjectName(); String msg = MessageFormat.format(bundle.getString("RecreateTableRenameNotes"), new String[] {cmd.getCommand()}); LabeledTextFieldDialog dlg = new LabeledTextFieldDialog(bundle.getString("RecreateTableRenameTable"), bundle.getString("RecreateTableNewName"), msg); dlg.setStringValue(newtab); if (dlg.run()) { newtab = dlg.getStringValue(); cmd.setObjectName(newtab); cmd.execute(); nfo.addTable(newtab); } } catch(Exception e) { TopManager.getDefault().notify(new NotifyDescriptor.Message("Unable to recreate, "+e.getMessage(), NotifyDescriptor.ERROR_MESSAGE)); } } } /* * <<Log>> * 8 Gandalf 1.7 11/27/99 Patrik Knakal * 7 Gandalf 1.6 10/23/99 Ian Formanek NO SEMANTIC CHANGE - Sun * Microsystems Copyright in File Comment * 6 Gandalf 1.5 6/22/99 Ian Formanek employed DEFAULT_HELP * 5 Gandalf 1.4 6/9/99 Ian Formanek ---- Package Change To * org.openide ---- * 4 Gandalf 1.3 5/21/99 Slavek Psenicka new version * 3 Gandalf 1.2 5/14/99 Slavek Psenicka new version * 2 Gandalf 1.1 4/23/99 Slavek Psenicka oprava activatedNode[0] * check * 1 Gandalf 1.0 4/23/99 Slavek Psenicka * $ */